1. Technical Field
The present invention relates to a system and method for developing software using dynamic dual-mode model and data entry. More particularly, the present invention relates to a system and method for using a modeling framework to seamlessly develop and deploy a model-driven editor.
2. Description of the Related Art
Model-driven architectures and applications are becoming more and more popular. In order to create the architectures and applications, an end user may use a model-driven “editor.” A model-driven editor uses a framework, such as the Eclipse Modeling Framework, and instance data that is produced by models.
A model-driven editor typically passes through two phases before being released to an end user. The first phase is a development phase. During the development phase, a developer creates and refines models on an iterative basis, such as examining the models' instance data and adjusting the models accordingly. A challenge found, however, is that existing modeling frameworks do not include persistence mechanisms to support this iterative process. For example, existing art has little ability to dynamically reflect instance data changes resulting from changes to the underlying models. Furthermore, the existing editors do not provide a standard method for accessing the models that generate the editors. Therefore, a developer has difficulty when analyzing instance data changes that result from model data changes, additions, or deletions.
Once the developer is finished with the development phase, the developer deploys the model-driven editor to an end user. The end user, however, is typically not interested in the means by which the editor was developed (e.g., models), but rather the finished product (e.g., instance data). A challenge found is that existing art does not provide phase transition mechanisms to easily transition from the development phase to the deployment phase. For example, existing art typically requires code compilation of some sort and, therefore the developer must test and verify the compiled code before deploying the editor.
In addition, a growing trend in software development is the use of “mixed-content” or “compound” documents. These documents include a combination of specific namespace vocabularies, such as XHTML, XForms, and MathML. A challenge found is that constructing editors to support mixed-content documents are becoming increasingly complex. However, using modeling principles to construct the editors eases the development complexity. For example, the Eclipse Modeling Framework (EMF) allows dynamic model and instance editing. A challenge found, however is that existing art has difficulty supporting mixed-content documents in a dynamic manner, particularly when a namespace vocabulary is added or removed.
What is needed, therefore, is a system and method that provides persistence mechanisms during model-driven editor development as well as phase transition mechanisms for model-driven editor deployment.